欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

bisect

时间:2023-08-18

Python自带的一个二分库,列表有序时使用

导入

import bisect

找到第一个大于等于x的数的位置

>>> a = [1, 2, 2, 2, 3]>>> pos = bisect.bisect_left(a, 2)>>> pos1>>> a[pos]2

找到第一个大于x的数的位置

>>> a = [1, 2, 2, 2, 3]>>> pos = bisect.bisect_right(a, 2)>>> pos4>>> a[pos]3

计算数组里有多少个x

>>> a = [1, 2, 2, 2, 3]>>> bisect.bisect_right(a, 2) - bisect.bisect_left(a, 2)3

在有序列表里插入元素

# 查找插入位置时间复杂度O(logn), 插入元素时间复杂度O(n)>>> a = [1, 2, 2, 2, 4]>>> bisect.insort(a, 3)>>> a[1, 2, 2, 2, 3, 4]

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。